package com.zhoutao123.hephaestus.service;

import com.zhoutao123.hephaestus.object.bussiness.VBlog;
import com.zhoutao123.hephaestus.object.bussiness.VBlogs;
import com.zhoutao123.hephaestus.object.transport.ArticleUpdate;
import com.zhoutao123.hephaestus.object.transport.BlogTO;
import com.zhoutao123.hephaestus.object.transport.PageBean;

public interface BlogService {

  /**
   * 根据文章标识获取文章详情
   *
   * @param blogId 文章唯一标识
   * @param withAttachment 关联其他信息
   * @return
   */
  VBlog getById(String blogId, Boolean withAttachment);

  /**
   * 获取文章列表
   *
   * @param key 搜索关键字Key
   * @param pageBean 分页信息
   * @return
   */
  VBlogs getByPageInfo(String key, PageBean pageBean);

  /**
   * 更新文章
   *
   * @param blogId 文章唯一标识
   * @param update 更新内容（增量更新)
   * @return
   */
  VBlog updateById(String blogId, ArticleUpdate update);

  /**
   * 获取最新的文章列表
   *
   * @param number
   * @return
   */
  VBlogs getLatestWithParam(Integer number);

  /**
   * 创建新的文章实体
   *
   * @param blogTO
   * @return
   */
  VBlog createOrUpdateBlog(BlogTO blogTO);
}
